/*
 * Copyright (2022) Bytedance Ltd. and/or its affiliates
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

namespace DB
{

enum class ManipulationType : unsigned int
{
    Empty = 0,
    Insert,
    Merge,
    Drop,
    Fetch,
    Mutate,
    BuildBitmap,
    Dump,
    Clustering,
    Attach,
    MvRefresh
};


inline constexpr const char * typeToString(ManipulationType type)
{
    switch (type)
    {
        case ManipulationType::Empty:
            return "Empty";
        case ManipulationType::Insert:
            return "Insert";
        case ManipulationType::Merge:
            return "Merge";
        case ManipulationType::Mutate:
            return "Mutate";
        case ManipulationType::Clustering:
            return "Clustering";
        case ManipulationType::Attach:
            return "Attach";
        case ManipulationType::MvRefresh:
            return "MvRefresh";
        default:
            /// TODO:
            return "Unknown";
    }
}

}
